* Generic channels: chat, mudlog, etc
* Split MConnection into MConnection (io), and MInterface (states, interpreter)
  * Connection/interface should be able to attach to multiple bodies
  * Interface should call new_interface hook for setting state
    * MConnection::Telnet's startup telnet option query isn't an interface state
* Add symbolic objects (remaining to be done: specify what can be done with each object, specify results (e.g. "give hug" produces an action and a 'touch' rather than transferring an object) ; idea: attribute for each possible use of a symbolic object (e.g. sym_give => the_desc_gen_str ; idea: help files should be symbolic objects
* accept/deny should be simplified to only handle 'give's since all consensual interactions will reduce to a give
  * wait...some can't, like the 'approach' action described in skotos
  * nother thought: generalization. take/get works on living creatures, just that they ordinarily resist, "give" prevents resistance and there should be a command to not resist. also one should automatically accept from trusted people
* Have parsing either built into command interpreter or in central place in modules, with several types: verbatim, preposition-split, space-split, parentheses, etc. Reasons: Smarter parsing ('words' could be quoted), better definition of end-of-command, per-verb set of prepositions, automated usage messages?
* Web server: Add item for calling cmd_execute directly; keep information about idempotency of commands so that e.g. 'look' is not required to be a POST request
* Attribute info should include an option for 'no implicit access' (for use when the attrs are intended to be accessed through special methods).
* Senses and coordinate-based world
* 'look' display: find visible objects; sort by importance / percieved danger to character; foreach object: display obj and related ones; remove from object list all mentioned objects.
* When in glance_contents, some containers should contribute their descriptions; say:
    You are in a box made out of 3" thick glass. On one side of the box are the letters "suibeoM". Through the walls you see:
    An intersection of concrete paths (bright white - they must be recently poured) with grass beside. The sky is a beautiful clear blue. You hear birds in the distance. 

* Open containers should optionally lose their contents when picked up
* MTerminal::ANSI: remove special html:class values for lists (therefore extend stylesheet to have class-specific info), move stylesheet data to lib
* Socket listeners should be defined in modules
* New containment: hash for contents list, accessor functions for everything
* integrating objects (sdescs) should only integrate in objects that request them
* Find leaking MConnection::Nils
* Action descriptions should include mention of objects contained ("You drop a chair, with Darius on it.")
* New system for object refs that provides for picking the first acceptable object (e.g. "get chair" getting the chair with nobody on it)
* Find memory leaks
* Make all core routines reentrant
* Comment code, implement method help
* Replace explicit 'nphr' in verb def CFAILs etc.
* Reimplement pager
* attach command should allow attaching to specific body, or any body if priv_runner
* Separate commands into 'precondition' and 'execution' code. This will allow delayed commands to work well
* Do a trace thru the code, save it to disk, and review it for inefficiencies
* Why did I want to do this? : Disconnect scheduler's frozen events from scheduler startup - scheduler ought to be started near-first-thing, but frozen events can be started anytime before startup completion.
* Limb-based: movement points, "doing", damage, and delaying commands till they can be done
* Text editor (descs, writing, code editing)
* Watchers
* Finish weightlimit.mod (prototype-change failure type, multiple-fragment type, make has_bp-s lose their balance)
* Finish observer creation: stop observing, delete log, save log, warnings to players
* Some way of keeping track of "what things nearby are interested in receiving output"
* Ranged speech system
* In addition to give/accept/deny, allow exchange of objects - both parties are forced to exchange objects simultaneously.
* Scripting
* Liquids
* Calendar
* Magic
* Following, groups
* wake <other>
* Menu-based object editing
* Configurable time/length/weight/etc units
* Consider implementing the 101 Spells Not Worth Memorizing.

-- Circle cmds to borrow/imitate/add-as-alias/explain-differences-on-usage list
Priv: at advance ban file snoop tedit trigedit tstat unban      
Combat: assist autoloot autosplit backstab bash kick kill rescue
Thief: hide listen pick sneak steal       
Information: compare consider weather
Objects: write         
  Magic: cast recite use
  Liquid: drink fill pour quaff sip 
  Food: eat taste
  EQ: equipment hold remove wear wield
OOC: follow last wimpy split 
Comm: holler shout whisper 
